package com.cloudbroker.bcs.platform.dav.bizapi.service.business.system;

import com.cloudbroker.bcs.common.annotation.NoLogin;
import com.cloudbroker.bcs.common.annotation.RequiredPermissions;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.PermissionsValue;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.HSBCPSVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.vo.BrokerTenantIdForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.vo.SuggestionAddForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.reward.vo.BrokerIdForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.system.back.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.system.vo.*;

/**
 * 
 * @author panjx12801
 *
 */
public interface SystemBizService {
    
    /**
     * 增加子大V
     * @param param
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public HSBCPSBackVO funcBrokerManagerSave(BrokerManagerSaveForm param);
    
    /**
     * 删除子大V
     * @param param
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public HSBCPSBackVO funcBrokerManagerDel(BrokerManagerIdForm param);
    
    /**
     * 查询子大V信息
     * @param param
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public BrokerManagerInfoForm funcBrokerManagerInfo(BrokerManagerIdForm param);
    
    /**
     * 查询子大V列表
     * @param param
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public BrokerManagerList funcBrokerManagerList(HSBCPSVO param);
    
    /**
     * 权限列表
     * @param param
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public BrokerPermissionList funcBrokerPermissionList(HSBCPSVO param);
    
    /**
     * 获取大V授权账户
     * @param param
     * @return
     */
    public BrokerAuthInfoForm funcAuthBroker(HSBCPSVO param);
    
    /**
     * 设置大V授权账户
     * @param param
     * @return
     */
    @NoLogin
    public HSBCPSBackVO funcBrokerAuthInfo(BrokerAuthSaveForm param);
    
    /**
     * 设置fans邀请码
     * @param form
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public HSBCPSBackVO funcSetInvitationCode(FansInvitationCodeForm form);
    
    /**
     * 获取fans邀请码
     * @param form
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public FansInvitationCodeResult funcGetInvitationCode(HSBCPSVO form);
    
    /**
     * 设置fans网页主标题
     * @param param
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public HSBCPSBackVO funcHomePageTitleSet(HomePageTitleForm param);
    
    /**
     * 获取ans网页主标题
     * @param param
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public HomePageTitleResult funcHomePageTitleGet(HSBCPSVO param);
    
    /**
     * 设置在线人数开关和阈值
     * @param param
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public HSBCPSBackVO funcShowPersonNumSet(ShowPersonNumSetForm param);
    
    /**
     * 大V端系统设置信息获取
     * @param param
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public ConfigurableSystemSetInfoResult funcSystemSetInfoGet(HSBCPSVO param);

    /**
     * 5071621大V端系统设置信息获取
     * @param form
     * @return
     */
    @NoLogin
    public ConfigurableSystemSetInfoResult funcSystemGetSkinInfo(BrokerTenantIdForm form);

    /**
     * 大V设置充值打赏额度
     * @param form
     * @return
     */
    @NoLogin
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    public HSBCPSBackVO funcPaymentOptionSave(PaymentOptionSaveForm form);
    
    /**
     * 大V查询充值打赏额度
     * @param form
     * @return
     */
    @NoLogin
    public PaymentOptionInfoForm funcPaymentOptionQry(BrokerIdForm form);
    
    /**
     * 手动更新accesstoken
     * @param form
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    HSBCPSBackVO funcRefreshAccessToken(HSBCPSVO form);
    
    /**
     * 意见反馈
     * @param form
     * @return
     */
    @RequiredPermissions(value = { PermissionsValue.SYSTEM })
    HSBCPSBackVO funcAddOpinion(SuggestionAddForm form);


}
